package tum0r.webengine.extension

/**
 * 说明: 线程扩展
 *
 * 创建者: tum0r
 *
 * 时间: 2021/9/28 21:57
 */
/**
 * 在子线程中执行实现了Runnable接口的类的对象
 *
 * @param[runnable] 实现了Runnable接口的类的对象
 * @param[autoStart] 是否直接开始执行
 */
@JvmOverloads
fun <T : Runnable> threadExecute(runnable: T, autoStart: Boolean = true): Thread {
    val result = Thread(runnable)
    if (autoStart) result.start()
    return result
}

/**
 * 在子线程中执行方法
 *
 * @param[func] 被执行方法
 * @param[autoStart] 是否直接开始执行
 */
@JvmOverloads
fun threadExecute(func: () -> Unit, autoStart: Boolean = true): Thread = threadExecute(Runnable(func), autoStart)
